With the rapid progress of communication networks in recent years, opportunities have increased for real-time communication of video and speech data among a plurality of recipients belonging to the same group, as in the case of teleconferencing systems and online gaming. In communications for such purposes, the same data is often transmitted to a plurality of recipients.
Multicast communication is known as a communication technology that efficiently transmits the same data to a plurality of recipients. In multicast communication, multimedia data distribution destinations are divided into groups, and packets are transmitted by multicast communication on a group-by-group basis.
If a data transmission source and data transmission destination are located in different segments, it has heretofore been necessary for all packet relay apparatuses (hereinafter referred to as “routers”) on a route from the transmission source to the transmission destination to support multicast communication.
In contrast to this, in recent years communication methods that make possible multicast communication to a different segment even if all routers on a route do not support multicast communication have been developed and become increasingly widespread. Such communication methods include an explicit multicast method and overlay multicast method, for example.
First, packet distribution by means of an explicit multicast method will be described.
An explicit multicast method is a communication method whereby all transmission destinations are specified explicitly by storing the destination addresses of all data receiving apparatuses belonging to a group in an option header section or payload section of a transmission packet. An example of a typical explicit multicast method is XCAST (see Non-Patent Document 1).
With an explicit multicast method, even if a router that does not support an explicit multicast method is present on a route, data can be transmitted to all recipients whose destination addresses are stored in an IP (internet protocol) packet (hereinafter referred to simply as “packet”). At this time, which recipients a packet has been distributed to is managed by means of a bit sequence stored in the packet header or the like.
Each router has a unicast route table in which a destination prefix, next hop, and sending interface are mutually associated.
On arrival of a packet, a router supporting an explicit multicast method searches the unicast route table for all destination addresses stored in the option header or payload of the packet, and checks the sending interface corresponding to each destination address.
A router supporting an explicit multicast method deletes from the packet a destination address other than a destination address of a recipient included in a sending interface to which the packet is sent. Alternatively, a router supporting an explicit multicast method scans a bit sequence stored in the packet, and adds a distribution-completed mark to a destination address other than a destination address of a recipient included in a sending interface to which the packet is sent. Also, a router supporting an explicit multicast method rewrites a destination address entered in the IP header as a destination address of a distribution-unperformed recipient. When a packet is sent to a plurality of sending interfaces, a router supporting an explicit multicast method makes a number of duplicates of the packet equivalent to the number of sending interfaces, and performs destination address rewriting for each duplicated packet.
Also, if there is a distribution-unperformed destination address in a received packet, a data receiving apparatus supporting an explicit multicast method duplicates that packet, and rewrites the IP header destination address as a distribution-unperformed destination address before sending. At this time, a data receiving apparatus supporting an explicit multicast method deletes its own node address from distribution-unperformed destination addresses or changes a bit sequence stored in the packet header to “distribution-completed”. Distribution implemented by having a received packet transmitted again from a data receiving apparatus to a router in this way is called “daisy-chain distribution”.
On the other hand, a router not supporting an explicit multicast method searches the unicast route table for a destination address entered in the IP header, and sends a packet in the same way as in normal unicast communication. Also, a data receiving apparatus not supporting an explicit multicast method performs only normal reception processing.
Using the above technique, a packet can be distributed to all recipients by means of an explicit multicast method even if a router that does not support an explicit multicast method is present on a route. Therefore, use of an explicit multicast method makes it possible for multicast communication to be performed in an existing network such as the Internet.
Packet distribution by means of an overlay multicast method will now be described.
An overlay multicast method is a communication method whereby a packet is transmitted to all data receiving apparatuses belonging to a group by having a data receiving apparatus perform packet copying and transfer. A typical overlay multicast method is application level multicast (ALM). Packet distribution using ALM is described below.
FIG. 1 is a system configuration diagram showing a sample configuration of a communication system using ALM.
In FIG. 1, communication system 10 has a transmitting terminal (20), which is a data transmitting apparatus, and receiving terminals A through E (30a through 30e) that receive data distribution from the transmitting terminal.
With ALM, a virtual tree-structure network comprising packet distribution routes is constructed on an actual network. A virtual tree-structure network of this kind is called a delivery tree. In FIG. 1, the lines linking the apparatuses indicate the delivery tree configuration of communication system 10.
A receiving apparatus 30 having other receiving apparatuses 30 downstream of itself performs copying and downstream transfer of a packet, and in this way a packet is distributed to all receiving apparatuses 30. For example, receiving terminals D and E are downstream of receiving terminal B. On receiving a packet transferred from receiving terminal A, receiving terminal B first checks a routing table and determines that receiving terminals D and E are present downstream. Then receiving terminal B copies the received packet in order to transfer the packet to receiving terminals D and E, and transfers the copied packet to receiving terminals D and E.
Thus, with an overlay multicast method, a packet is distributed via distribution routes based on a delivery tree by having data receiving apparatuses perform the role of routers. A delivery tree is constructed by data receiving apparatuses exchanging information and a data transmitting apparatus creating a delivery tree.
Destruction or loss of a packet (hereinafter generically referred to as “packet loss”) may occur due to congestion, a transmission error, or the like in a network. The occurrence of packet loss in stream data transmission causes in a gap in the stream data, resulting in a decrease in the quality of video or music played back on the receiving side. Especially in the case of video data that uses a compression codec employing a dependence relationship between video frames, such as MPEG (moving picture experts group) data, a single packet loss may cause lengthy disruption of video.
Thus, retransmission of data of a packet that has not reached its destination is conventionally performed. On receiving a data retransmission request (hereinafter referred to as “retransmission request”) from a data receiving apparatus that has detected the occurrence of a packet loss, a data transmitting apparatus responds by retransmitting data stored in the packet for which a packet loss occurred by means of a retransmission packet. Retransmitting data stored in the packet for which a packet loss occurred enables data quality to be improved in the data receiving apparatus.
However, in so-called real-time communication, there is a requirement for the delay time from input to a data transmitting apparatus of data subject to transmission until playback of the data by a data receiving apparatus to be as short as possible. For example, in a teleconferencing system, an important factor is the delay time from the time at which video and speech are input to a data transmitting apparatus until the time at which video and speech are finally output from a video apparatus and speaker after undergoing data encoding in the data transmitting apparatus and data decoding in the data receiving apparatus (the playback time). This is because the delay time that is permissible in carrying on a conversation without experiencing a sense of abnormality is generally extremely short, at around 200 to 400 ms.
Since a data receiving apparatus cannot detect the occurrence of a packet loss until after receiving a subsequent packet, detection of a packet loss in a data receiving apparatus located downstream is slow. Also, for a data receiving apparatus located downstream, the both-way delay time (round trip time: RTT) vis-à-vis a data transmitting apparatus is lengthy. Therefore, if the permissible delay time is short, a situation arises in which a retransmission packet cannot reach a data receiving apparatus located downstream in time for data playback, and data quality cannot be improved despite the fact that retransmission is performed.
Thus, technologies that implement data retransmission control that maintains real-time processing in multicast communication are described in Patent Documents 1 and 2, for example.
According to a technology described in Patent Document 1, a data receiving apparatus that detects a packet loss makes a retransmission request to an intermediate node that transferred the packet rather than to the data transmitting apparatus that is the packet transmission source. Then, if the relevant packet is being held by the intermediate node, the intermediate node, and not the data transmitting apparatus that is the packet transmission source, performs packet retransmission. By this means, a delay time between the intermediate node and the data transmitting apparatus can be eliminated, and the securement of real-time processing is facilitated.
According to a technology described in Patent Document 2, a data receiving apparatus that detects a packet loss transmits a retransmission request to peripheral apparatuses using multicast communication. Of the data receiving apparatuses that receive the retransmission request, a data receiving apparatus that received and is holding the requested data packet transmits a retransmission packet using multicast communication. By this means, a retransmission packet can be made to arrive earlier than when a data transmitting apparatus transmits a retransmission packet, and the securement of real-time processing is facilitated.    Patent Document 1: Japanese Patent Application Laid-Open No. 2002-84239    Patent Document 2: Japanese Patent Application Laid-Open No. 2003-209576    Non-patent Document 1: Y. Imai, M. Shin and Y. Kim, “XCAST6: eXplicit Multicast on IPv6”, IEEE/IPSJ SAINT2003 Workshop 4, IPv6 and Applications, Orland, January 2003.